// 使用ajax查询商品（添加分页处理：逻辑分页，假分页）
function queryAllGoods() {
    $.ajax({
        type: "get",
        url: "queryAllGoods",
        success: function (a) { // 成功时的回调函数
            // 进行业务逻辑处理，进行 dom 操作，完成页面的据图更新
            // 解析ajax回调返回的data对象中的数据，然后将其显示到指定的位置
            if (a) {
                // 将查询的数据源进行假分页处理
                $("#queryPager").pagination({
                    dataSource: a,
                    pageSize: 5,
                    showGoInput: true,
                    showGoButton: true,
                    callback: function (pageData, pagination) {
                        var strMsg = "";
                        // 使用each循环遍历，json数组中的每个对象，并将每个对象的属性值取出进行显示
                        $.each(pageData, function (index, eachGood) {
                            strMsg += "<tr>";
                            strMsg += "<th scope='row'>" + (index + 1) + "</th>";
                            strMsg += "<td>" + eachGood.gname + "</td>";
                            strMsg += "<td>" + eachGood.producer + "</td>";
                            strMsg += "<td>" + eachGood.price + "/" + eachGood.unit + "</td>";
                            strMsg += "<td>" + eachGood.inventory  + "</td>";
                            strMsg += "<td> <img src='" + eachGood.image + "' width='50px' height='30px' alt='#'> </td>";
                            strMsg += "<td>" + eachGood.specification + "</td>";
                            strMsg += "<td>" + eachGood.lable + "</td>";
                            strMsg += "<td>" + eachGood.discount + "</td>";
                            strMsg += "<td>" + "<button class='btn btn-sm btn-white' type='button' onclick='showUpdateModal(\""+eachGood.gid+"\")'>修改</button> <button class='btn btn-sm btn-white' type='button' onclick='deleteGood(\""+eachGood.gid+"\")'>删除</button>" + "</td>";
                            strMsg += "</tr>";
                        });
                        $("#showMsg").html(strMsg); // 局部刷新
                    }
                });
            }
        },
        error: function () {
            alert("出错啦");
        }
    });
}
//根据商品名称查询商品
function queryGoodsByKey() {
    let gname = $("#gname").val();
    $.ajax({
        type: "get", // 请求的类型，等价于 form 表单的 method 属性
        url: "queryGoodsByKey", // 请求的服务器url，等价于 form 表单的 action 属性
        data: "gname="+gname,
        success: function (data) { // 成功时的回调函数
            // 进行业务逻辑处理，进行 dom 操作，完成页面的据图更新
            // 解析ajax回调返回的data对象中的数据，然后将其显示到指定的位置
            if (data) {
                // 将查询的数据源进行假分页处理
                $("#queryPager").pagination({
                    dataSource: data,
                    pageSize: 5,
                    showGoInput: true,
                    showGoButton: true,
                    callback: function (pageData, pagination) {
                        let strMsg = "";
                        let strDate;
                        // 使用each循环遍历，json数组中的每个对象，并将每个对象的属性值取出进行显示
                        $.each(pageData, function (index, eachGood) {
                            strMsg += "<tr>";
                            strMsg += "<th scope='row'>" + (index + 1) + "</th>";
                            strMsg += "<td>" + eachGood.gname + "</td>";
                            strMsg += "<td>" + eachGood.producer + "</td>";
                            strMsg += "<td>" + eachGood.price + "/" + eachGood.unit + "</td>";
                            strMsg += "<td>" + eachGood.inventory  + "</td>";
                            strMsg += "<td> <img src='" + eachGood.image + "' width='50px' height='30px'> </td>";
                            strMsg += "<td>" + eachGood.specification + "</td>";
                            strMsg += "<td>" + eachGood.lable + "</td>";
                            strMsg += "<td>" + eachGood.discount + "</td>";
                            strMsg += "<td>" + "<button class='btn btn-sm btn-white' type='button' onclick='showUpdateModal(\""+eachGood.gid+"\")'>修改</button> <button class='btn btn-sm btn-white' type='button' onclick='deleteGood(\""+eachGood.gid+"\", this)'>删除</button>" + "</td>";
                            strMsg += "</tr>";
                        });
                        $("#showMsg").html(strMsg); // 局部刷新
                    }
                });
            }
        },
        error: function () {
            alert("出错啦");
        }
    });
}
//展示修改模态框
function showUpdateModal(gid) {
    $("#gridSystemModalLabel").text("商品修改信息管理");
    $.ajax({
        type: "get", // 请求方式
        url: "queryAllGoods", // 请求的服务器路径
        data: "gid="+gid,
        success: function (data) {
            console.log("asd");
            $("#gid").val(data[0].gid);
            $("#gname_edit").val(data[0].gname);
            $("#producer_edit").val(data[0].producer);
            $("#price_edit").val(data[0].price);
            $("#unit_edit").val(data[0].unit);
            $("#inventory_edit").val(data[0].inventory);
            // $("#image_edit").val(data[0].image);
            console.log(data[0].specification)
            console.log(data[0].lable)
            console.log(data[0].discount)
            $("#specification_edit").val(data[0].specification);
            $("#lable_edit").val(data[0].lable);
            $("#discount_edit").val(data[0].discount);
        },
        error: function () {
            alert("出错啦");
        }
    });
    $('#goodInfoModal').modal('show');
}

//修改商品
function updateGood() {
    let formDataEdit = new FormData($("#updateForm").get(0));
    $.ajax({
        type: "PUT",
        url: "updateGoodById",
        data: formDataEdit,
        // 使用FormData对象作为ajax发送服务器的数据载体，需要设置以下两个参数
        contentType: false, // 防止request请求位置文件头上下文对象，如果进行处理，则会丢失文件流对象
        processData: false, // 防止request请求自动处理ForamData对象，如果进行处理，则会丢失文件流对象

        datatype: "Json",   // 服务器响应的内容类型
        success: function (data) {
            // data 是json对象，而不是json字符串，所有data可以像数据集合一样进行遍历
            // 这里是进行ajax业务逻辑处理的地方
            // 执行ajax引擎的回调处理，这里是用来进行业务逻辑处理的【类似 thread 类的 run 方法； 类似于 servlet的service方法】
            console.log("ajax查询的数据集：")
            console.log(data);
            console.log(JSON.stringify(data))
            // 体现了dom的局部更新，也是ajax优势
            // 遍历 data json对象
            if (data && data == 'ok') {
                alert("商品信息修改成功！");
                // 关闭modal，并调用ajax查询，显示刚才修改的数据记录
                $('#goodInfoModal').modal('hide');
                queryAllGoods();
            } else {
                alert("商品信息修改失败！");
            }
        },
        error: function () {
            // ajax请求发生非错误时的回调函数
            alert("商品信息修改失败!");
        }
    });
}
/*function distribution() {
    let val = $('#save').text();
    if (val == "保存") {
        saveGood();
    } else {
        updateGood();
    }
}*/
// 删除商品
function deleteGood(gid) {
    // alert(nowTr);
    let flag = confirm("确认要删除吗");
    if (flag) {
        $.ajax({
            type: "DELETE",
            url: "deleteGoodById",
            data: "gid="+gid,
            success: function (data) {
                if (data && data == 'ok') {
                    alert("删除成功！");
                    queryAllGoods();
                } else {
                    alert("删除失败！")
                }
            },
            error: function () {
                alert("出错啦");
            }
        });
    }
}

//新增商品
function insertGood(){
    let formData = new FormData($("#insertForm").get(0));
    // jquery实现ajax的操作
    $.ajax({
        type: "POST", // 请求方式
        url: "insertGood", // 请求的服务器路径
        data: formData, //$("#insertform").serialize(), // post请求的数据参数例如： userId=1&userName=zhangsan

        // 使用FormData对象作为ajax发送服务器的数据载体，需要设置以下两个参数
        contentType: false, // 防止request请求位置文件头上下文对象，如果进行处理，则会丢失文件流对象
        processData: false, // 防止request请求自动处理ForamData对象，如果进行处理，则会丢失文件流对象

        datatype: "Json", // 服务器响应的内容类型
        success: function (data) { // ajax请求成功时的回调函数
            // data 是json对象，而不是json字符串，所有data可以像数据集合一样进行遍历

            // 这里是进行ajax业务逻辑处理的地方
            // 执行ajax引擎的回调处理，这里是用来进行业务逻辑处理的【类似 thread 类的 run 方法； 类似于 servlet的service方法】
            console.log("ajax查询的数据集：")
            console.log(data);
            console.log(JSON.stringify(data))
            // 体现了dom的局部更新，也是ajax优势
            // 遍历 data json对象
            if (data && data == 'ok') {
                alert("商品信息保存成功！");
                reset();
            } else {
                alert("商品信息保存失败！");
            }
        },
        error: function () {
            // ajax请求发生非错误时的回调函数
            alert("商品信息保存失败!");
        }
    });
}
//清空
function reset() {
    $('#insertForm')[0].reset();
}

